package com.wbs.domain;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.wbs.domain.base.BaseEntity;

@Entity
@Table(name = "empleado")
public class Empleado extends BaseEntity implements java.io.Serializable{
	private static final long serialVersionUID = 1L;
	
	private Cargo cargo;
	private Area area;
	private String nombre;
	private String apellido;
	private Date fechaNacimiento;
	private List<Asignacion> listaAsignacion;
	
	@OneToOne
    @JoinColumn(name = "codigoCargo", referencedColumnName="codigo")
	public Cargo getCargo() {
		return cargo;
	}
	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}
	@OneToOne
    @JoinColumn(name = "codigoArea", referencedColumnName="codigo")
	public Area getArea() {
		return area;
	}
	public void setArea(Area area) {
		this.area = area;
	}
	@Column
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	@Column
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	@Column	
	public Date getFechaNacimiento() {
		return fechaNacimiento;
	}
	public void setFechaNacimiento(Date fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}
	@OneToMany(mappedBy="empleado", fetch=FetchType.LAZY)
    @JoinColumn(name = "codigoAsignacion", referencedColumnName="codigo")
	public List<Asignacion> getListaAsignacion() {
		return listaAsignacion;
	}
	public void setListaAsignacion(List<Asignacion> listaAsignacion) {
		this.listaAsignacion = listaAsignacion;
	}
	
}
